"""
获取标准廓线数据，存入数据库表，包括列：
海拔高度（m），温度廓线（K），密度廓线（kg/m3），风廓线（m/s），风向（°，正北方向为0°，顺时针），气压廓线（hPa）
"""
#coding=utf-8
import os
import pandas as pd
from utils.mylib_db import *
from utils.mylib_utils import *

#db_table_standard_data = "bt_standard_data"
db_table_standard_data = "test"

def readStandardProbeDataFile(file_name):
    """
    根据用户提供的路径，读取探测文件或目录
    """
    if file_name.strip() == '':
        print("参数错误！")
        #return -1
        return {"code":-1, "msg": "参数错误"}
    if not os.path.isfile(file_name):
        print("文件不存在！")
        return {"code": -1, "msg": "文件不存在"}

    df = pd.read_excel(file_name,sheet_name=['海拔高度', '温度廓线', '密度廓线', '风廓线', '气压廓线'],header=0)

    #插入数据库
    db_cols = ["Altitude", "TemperatureProfile", "DensityProfile", "WindSpeedProfile", "WindDirectionProfile", "AirPressureProfile"]
    value_arr = []
    MAX_LEN = 40000     #每次存入数据的最大条数
    for i in range(len(df['海拔高度'])):
        if len(value_arr) == MAX_LEN:
            ret = insert_db_in_batch(db_table_standard_data, db_cols, value_arr)
            value_arr = []

        value_str = '"%.2f", "%.6f", "%.6f", "%.6f", "%.6f", "%.6f"' % (str_to_float(df['海拔高度'].iloc[i,0]), str_to_float(df['温度廓线'].iloc[i,0]), str_to_float(df['密度廓线'].iloc[i,0]),
                                                                        str_to_float(df['风廓线'].iloc[i,0]), str_to_float(df['风廓线'].iloc[i,1]), str_to_float(df['气压廓线'].iloc[i,0]))
        value_arr.append(value_str)

    if len(value_arr) > 0:
        ret = insert_db_in_batch(db_table_standard_data, db_cols, value_arr)

    if ret > 0:
        return 0
    else:
        return ret